
package controladores;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelos.MIngrediente;
import modelos.MProducto;
import vistas.VListadoVendido;
import vistas.VProducto;
import vistas.VProductoMas;

public class CListadoVendido implements ActionListener {
    private VListadoVendido vista;
    private MProducto modeloProducto;
    private MIngrediente modeloIngrediente;
    private boolean ascendente,descendente;
    Vector<Integer> codigos;

    public CListadoVendido(VListadoVendido aThis) {
        vista= aThis;
        modeloProducto= new MProducto();
        modeloIngrediente = new MIngrediente();
        ascendente = false;
        descendente = false;
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("Consultar")){
            consultar();
        }
        else if(ae.getActionCommand().equals("Asces")){
            ascendente = true;
            descendente = false;
        }
        else if(ae.getActionCommand().equals("Desces")){
            descendente = true;
            ascendente = false;
        }
        else if(ae.getActionCommand().trim().equals("Mostrar".trim())){
            mostrar();
        }
        else if(ae.getActionCommand().equals("Cancelar")){
                vista.reiniciar();
                ascendente = false;
                descendente = false;
        }
        else if(ae.getActionCommand().equals("Salir")){
            vista.setVisible(false);
        }
    }

    private void consultar() {
        vista.reiniciar();
        codigos= new Vector<Integer>();
        Vector<String []> v = modeloProducto.listarVentas(ascendente, descendente);
        for (int i = 0; i < v.size(); i++){
            vista.agregarFila(v.get(i));
            codigos.add(Integer.parseInt(v.get(i)[3]));
        }
    }

    public void mostrar() {
        int i = vista.getTblIngrediente().getSelectedRow();
        if(i != -1){
            modeloIngrediente.setCodigo(codigos.elementAt(i));
            Vector<String> v = modeloIngrediente.listarProdcutosVendidos();
            vista.mostrar(v);
        }
        else
            JOptionPane.showMessageDialog(new JFrame(),"Para ver los productos donde se usa el ingediente debe seleccionar la fila","Comida Rapida",JOptionPane.ERROR_MESSAGE);
    }
    

}
